/**
 * 将多个函数组合 从右到左一次调用
 * @returns {any}
 */
function compose () {
  var fns = Array.prototype.slice.call(arguments)
  var start = fns.length - 1
  return function () {
    var args = Array.prototype.slice.call(arguments)
    var i = start
    var result = fns[i].apply(this, args)
    while (i--)  result = fns[i].call(this, result)
    return result
  }
}

export default compose